package cn.iocoder.yudao.module.of.controller.admin.schedulecenter.vo;

import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 日程中心 信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ScheduleCenterRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "5266")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "标题")
    @ExcelProperty("标题")
    private String title;

    @Schema(description = "参与人员")
    @ExcelProperty("参与人员")
    private List<String> participants;

    @Schema(description = "参与人员")
    @ExcelProperty("参与人员名称")
    private List<String> participantsName;

    @Schema(description = "开发时间")
    @ExcelProperty("开发时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime startTime;

    @Schema(description = "结束时间")
    @ExcelProperty("结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime endTime;

    @Schema(description = "会议地点")
    @ExcelProperty("会议地点")
    private String location;

    @Schema(description = "日程类型")
    @ExcelProperty("日程类型")
    private Integer category;

    @Schema(description = "图标")
    @ExcelProperty("图标")
    private String icon;

    @Schema(description = "描述", example = "随便")
    @ExcelProperty("描述")
    private String description;

    @Schema(description = "提醒人员")
    @ExcelProperty("提醒人员")
    private Integer reminder;

    @Schema(description = "提醒类型（弹窗、企业微信等）", example = "1")
    @ExcelProperty("提醒类型（弹窗、企业微信等）")
    private String type;

    @Schema(description = "提醒时间( 提前15分钟、提前30分钟）")
    @ExcelProperty("提醒时间( 提前15分钟、提前30分钟）")
    private Integer remindTimeType;

    @Schema(description = "提醒时间点2025-04-12 12:30:00")
    @ExcelProperty("提醒时间点2025-04-12 12:30:00")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime remindTime;

    @Schema(description = "重复周期")
    @ExcelProperty("重复周期")
    private Integer repeatPeriod;

    @Schema(description = "附件ID")
    @ExcelProperty("附件ID")
    private List<Long> attachments;

    private List<FileDO> attachmentList;

    private Integer count;


    @Schema(description = "优先级ID")
    private Integer priorityId;

    @Schema(description = "优先级名称")
    private String priorityName;


    @Schema(description = "标签")
    @ExcelProperty("标签")
    private List<String> tags;

    @Schema(description = "状态", example = "2")
    @ExcelProperty("状态")
    private Integer status;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTime;

    private String creator;

    private String creatorName;

}